#pragma once

#include "ManagerExport.h"
#include <windows.h>
#include <string>

namespace ProcessManager
{
    class PROCESS_MANAGER_EXPORT CProcessManagerInterface
    {
    public:
        CProcessManagerInterface() = delete;

        static bool closeProcess(DWORD vProcessId);
        static DWORD getOrCreateProcess(const wchar_t* vPath, const wchar_t* vCommandLine = NULL);
        static DWORD getOrCreateProcess(const std::string& vPath, const std::string& vCommandLine = "");
        static DWORD getProcessIDByName(const std::string& vProcessName);
        static bool IsProcessRunning(const std::string& vProcessName);

    private:
        static wchar_t* __convertString2wchar(const std::string& vStr);
    };
}